$(document).ready(function () {
    initProductionTrackingTable();

    // 搜索按钮
    $('#btnSearch').click(function() {
        $('#data-table').bootstrapTable('refresh', {silent: true});
    });

    // 重置按钮
    $('#btnReset').click(function() {
        // 1. 清空所有搜索条件
        $('#pProductName').val('');
        $('#pDepartment').val('');

        // 2. 销毁现有表格
        $('#data-table').bootstrapTable('destroy');

        // 3. 延迟重新初始化表格（确保DOM更新完成）
        setTimeout(function() {
            initProductionTrackingTable();
        }, 100);
    });

    // 新增按钮
    $('#btnAdd').click(function() {
        $('#editForm')[0].reset();
        $('#id').val('');
        // 默认选择未审核
        $('#audit_status').val('未审核');
        $('#editModal').modal('show');
    });


    // 修改保存按钮的点击事件处理函数
    $('#saveButton').click(function() {
        const productionTrackingData = {
            id: $('#id').val() || null,
            product_name: $('#product_name').val().trim(),
            planned_quantity: parseInt($('#planned_quantity').val()),
            department: $('#department').val().trim(),
            manager_id: parseInt($('#manager_id').val()),
            completed_quantity: parseInt($('#completed_quantity').val()),
            audit_status: $('#audit_status').val().trim(),
            plan_id: $('#plan_id').val().trim(), // 直接使用字符串类型
            product_id: parseInt($('#product_id').val()),
            staff_id: parseInt($('#staff_id').val()),
            batch_number: $('#batch_number').val().trim(),
            remarks: $('#remarks').val().trim()
        };

        if (!productionTrackingData.product_name || !productionTrackingData.department) {
            alert('产品名称和部门不能为空！');
            return;
        }

        const method = productionTrackingData.id ? 'PUT' : 'POST';
        const url = productionTrackingData.id
            ? `http://localhost:8080/api/productionTracking/${productionTrackingData.id}`
            : 'http://localhost:8080/api/productionTracking';

        $.ajax({
            url: url,
            type: method,
            contentType: 'application/json',
            data: JSON.stringify(productionTrackingData),
            success: function() {
                $('#editModal').modal('hide');
                $('#data-table').bootstrapTable('refresh');
                alert('操作成功！');
            },
            error: function(xhr) {
                console.log('后端返回的错误信息:', xhr.responseText); // 打印详细错误信息

                const errorMessage = xhr.responseText || '未知错误';

                if (xhr.status === 409) {
                    alert(`操作失败（状态码 ${xhr.status}）：${errorMessage}`);
                } else {
                    alert(`操作失败：${xhr.status} - ${errorMessage}`);
                    console.error('保存错误:', xhr.responseText);
                }
            }
        });
    });
});

// 编辑生产跟踪信息
function editProductionTracking(id) {
    $.ajax({
        url: `http://localhost:8080/api/productionTracking/${id}`,
        type: 'GET',
        success: function(productionTracking) {
            $('#id').val(productionTracking.id);
            $('#product_name').val(productionTracking.product_name);
            $('#planned_quantity').val(productionTracking.planned_quantity);
            $('#department').val(productionTracking.department);
            $('#manager_id').val(productionTracking.manager_id);
            $('#completed_quantity').val(productionTracking.completed_quantity);
            // 设置审核状态的下拉选择框
            $('#audit_status').val(productionTracking.audit_status);
            $('#plan_id').val(productionTracking.plan_id);
            $('#product_id').val(productionTracking.product_id);
            $('#staff_id').val(productionTracking.staff_id);
            $('#batch_number').val(productionTracking.batch_number);
            $('#remarks').val(productionTracking.remarks);
            $('#editModal').modal('show');
        },
        error: function(xhr) {
            alert(`获取生产跟踪信息失败：${xhr.status}`);
            console.error('获取生产跟踪信息错误:', xhr.responseText);
        }
    });
}

// 删除生产跟踪信息
function deleteProductionTracking(id) {
    if (!confirm('确定删除该生产跟踪信息？')) return;
    $.ajax({
        url: `http://localhost:8080/api/productionTracking/${id}`,
        type: 'DELETE',
        success: function() {
            $('#data-table').bootstrapTable('refresh');
            alert('删除成功！');
        },
        error: function(xhr) {
            alert(`删除失败：${xhr.status}`);
            console.error('删除错误:', xhr.responseText);
        }
    });
}

// 提取表格初始化逻辑为独立函数
function initProductionTrackingTable() {
    // 初始化表格
    $('#data-table').bootstrapTable({
        method: 'get',
        url: 'http://localhost:8080/api/productionTracking/searchProductionTracking',
        striped: true,
        pagination: true,
        pageNumber: 1,
        pageSize: 10,
        pageList: [5, 10, 20],
        sidePagination: 'server',
        queryParamsType: "",

        // 响应处理 - 确保与后端数据结构匹配
        responseHandler: function(res) {
            console.log('API响应数据:', res); // 调试输出
            if (res.code === 200) {
                return {
                    total: res.total,
                    rows: res.rows
                };
            } else {
                console.error('API错误:', res.message);
                return {
                    total: 0,
                    rows: []
                };
            }
        },

        // 查询参数
        queryParams: function(params) {
            var query = {
                productName: $('#pProductName').val() || null,
                department: $('#pDepartment').val() || null,
                managerId: $('#pManagerId').val() || null,
                auditStatus: $('#pAuditStatus').val() || null,
                batchNumber: $('#pBatchNumber').val() || null,
                page: params.pageNumber,
                size: params.pageSize
            };

            console.log("请求参数:", query);
            return query;
        },

        // 列定义 - 确保字段名与JSON完全匹配
        columns: [
            { checkbox: true },
            { field: 'id', title: 'ID', visible: false },
            {
                field: 'product_name',
                title: '产品名称',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'planned_quantity',
                title: '计划数量',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'department',
                title: '部门',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'manager_id',
                title: '经理ID',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'completed_quantity',
                title: '完成数量',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'audit_status',
                title: '审核状态',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'plan_id',
                title: '计划ID',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'product_id',
                title: '产品ID',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'staff_id',
                title: '员工ID',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'batch_number',
                title: '批次号',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                field: 'remarks',
                title: '备注',
                formatter: function(value) {
                    return value || '-';
                }
            },
            {
                title: '操作',
                formatter: function(value, row) {
                    return [
                        `<button class="btn btn-sm btn-primary" onclick="editProductionTracking(${row.id})">编辑</button>`,
                        `<button class="btn btn-sm btn-danger" onclick="deleteProductionTracking(${row.id})">删除</button>`
                    ].join(' ');
                }
            }
        ],

        // 事件监听
        onLoadSuccess: function(data) {
            console.log('表格加载成功，数据:', data);
        },
        onLoadError: function(status, jqXHR) {
            console.error('表格加载失败:', status, jqXHR);
            alert('加载数据失败，请查看控制台日志');
        }
    });
}


function getProductIdByProductName() {
    var productName = $('#product_name').val();
    if (productName) {
        $.ajax({
            url: `http://localhost:8080/api/products/getProductIdByProductName?productName=${productName}`,
            type: 'GET',
            success: function(response) {
                if (response.productId) {
                    $('#product_id').val(response.productId);
                } else {
                    alert('未找到该产品');
                    $('#product_id').val('');
                }
            },
            error: function(xhr) {
                alert(`获取产品 ID 失败：${xhr.status}`);
                console.error('获取产品 ID 错误:', xhr.responseText);
            }
        });
    }
}